package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
)

func LoginAuth(c *gin.Context) {
	fmt.Println("login middleware...")
}

func main() {

	//创建一个 gin 的默认实例
	r := gin.Default()

	//全局通用(global router)
	//r.Use(LoginAuth)

	//匿名函数实现
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "test module gin",
			"data":    "pong",
		})
	})

	//登录 注册不需要保护
	r.POST("login", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"msg": "登录接口,需要登录保护",
		})
	})

	r.POST("register", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"msg": "注册接口,需要登录保护",
		})
	})

	//修改 查询需要登录保护
	//组方式(group router)
	/*user := r.Group("user", LoginAuth)
	{
		user.PUT(":id", func(c *gin.Context) {
			c.JSON(200, gin.H{
				"msg" : "修改用户详情接口,需要登录保护",
			})
		})

		//http://localhost:8081/user/10
		user.GET(":id", func(c *gin.Context) {
			c.JSON(200, gin.H{
				"msg" : "获取用户详情接口,需要登录保护",
			})
		})
	}*/

	//单个指定(single router)
	r.PUT(":id", LoginAuth, func(c *gin.Context) {
		c.JSON(200, gin.H{
			"msg": "修改用户详情接口,需要登录保护",
		})
	})

	//http://localhost:8081/user/10
	r.GET(":id", LoginAuth, func(c *gin.Context) {
		c.JSON(200, gin.H{
			"msg": "获取用户详情接口,需要登录保护",
		})
	})

	//默认值为 8080
	//基于http, :port 进行修改
	r.Run(":8081")
}
